Лабораторная работа №4

Кибербезопасность предприятия

НКНбд-01-22;

Аристид Жан,

Акопян Сатеник,

Кадров Виктор,

Нве Манге Хосе Херсон Мико,

Эспиноса Висилита Кристина Микаела,

НПИбд-01-22;

Стариков Данила,

НФИбд-02-22;

Чемоданова Ангелина

Описание сценария

Во внутреннем сегменте организации необходимо получить доступ к контроллеру домена. У доменного пользователя «Flag», в одном из полей свойств пользователя необходимо найти флаг.

Для прохождения данного сценария в первую очередь потребуется активная meterpreter-сессия с узлом в сегменте DMZ.

Вариант получения meterpreter-сессии с корпоративным сайтом с помощью модуля wp_wpdiscuz_unauthenticated_file_upload представлен на скриншотах.

Описание сценария

Параметры модуля wp_wpdiscuz_unauthenticated_file_upload

Описание сценария

Настройка и запуск meterpreter-сессии с корпоративным сайтом с помощью модуля wp_wpdiscuz_unauthenticated_file_upload

Описание сценария

Вариант получения meterpreter-сессии с почтовым сервером с помощью модуля exchange_proxyshell_rce представлен на скриншотах.

Описание сценария

Параметры модуля exchange_proxyshell_rce

Описание сценария

Настройка и запуск meterpreter-сессии с почтовым сервером с помощью exchange_proxyshell_rce

Описание сценария

После получения сессии нужно проверить, находится ли эксплуатируемый узел в домене. Проверка выполняется с помощью команды sysinfo, которую нужно вводить в активную meterpreter-сессию.

Вывод команды для узла не в домене

Описание сценария

Вывод команды для узла под управлением контроллера домена

Описание сценария

Можно свернуть активную сессию с помощью команды background (или bg) и просмотреть список активных сессий с помощью команды sessions.

Информация о meterpreter-сессии с корпоративным сайтом

Описание сценария

В случае получения сессии с корпоративным сайтом (модуль wordpress) для успешного выполнения дальнейших операций с атакуемой машиной необходимо повысить текущую сессию, повышение сессии в данном контексте не подразумевает повышение привилегий.

Для повышения сессии необходимо:

  • свернуть активную сессию с помощью команды background (или bg);
  • прописать команду sessions -u {НОМЕР_СЕССИИ};
  • зайти в новую сессию sessions {НОМЕР_СЕССИИ}.

Описание сценария

Создание и запуск повышенной сессии

Описание сценария

После повышения сессии можно переходить к процедуре поиска флага.

В зависимости от того, с каким узлом в сегменте DMZ получена сессия (находится узел в доменной сети или нет), сценарий имеет различные вариации прохождений. Варианты прохождения представлены ниже.

Способы получения флага

Доступ во внутренюю сеть через доменный узел

Данный подраздел описывает процесс получения флага через узел, который находится под управлением контроллера домена.

В данном случае получить флаг можно с использованием команды net user, для чего в активной meterpreter-сессии перейти в shell-оболочку с помощью команды shell.

С помощью команды net user /domain вывести список всех доменных пользователей, далее вывести полную информацию о пользователе «Flag». В результате будет получен флаг в поле описания пользователя.

Доступ во внутренюю сеть через доменный узел

Список пользователей в домене

Доступ во внутренюю сеть через доменный узел

Получение флага

Доступ во внутренюю сеть через узел не в домене

Данный подраздел описывает процесс получения флага через узел, который не находится под управлением контроллера домена.

В первую очередь необходимо узнать, какие интерфейсы имеются на машине во внутренней сети, поиск выполняется в shell-оболочке с помощью команды ip a.

Маршрут до внутренней сети

Доступ во внутренюю сеть через узел не в домене

Анализ выполнения команды показывает, что внутренняя сеть организации – это 10.10.10.0/24.

Для продолжения атаки необходимо просканировать все доступные хосты во внутренней сети с помощью модуля Multi Gather Ping Sweep.

Настройки модуля Multi Gather Ping Sweep

Доступ во внутренюю сеть через узел не в домене

Произойдет сканирование внутренней сети организации и будут найдены все доступные хосты.

Далее можно посмотреть ARP-таблицу на атакуемой машине с помощью команды arp в meterpreter-сессии.

ARP-таблица на атакуемой машине

Доступ во внутренюю сеть через узел не в домене

Поскольку целевой адрес атакуемого узла находится во внутренней подсети организации, то необходимо прописать маршрут до активной meterpreter-сессии.

Далее выполнить проброс портов во внутреннюю сеть для дальнейшего выполнения команд через технику proxychains. Инструмент proxychains создает туннель через цепочку прокси-серверов и передает по данному туннелю пакет до адреса назначения. Для проброса портов во внутреннюю сеть используется команда run autoroute -s 10.10.10.0/24.

Доступ во внутренюю сеть через узел не в домене

Сведения о добавлении маршрута

Доступ во внутренюю сеть через узел не в домене

С помощью команды route print можно посмотреть активные маршруты в рамках текущей сессии.

Маршрут сканирования

Доступ во внутренюю сеть через узел не в домене

Далее необходимо просканировать доступные хосты во внутренней подсети на наличие открытых портов с использованием модуля nmap. Так как сканируемые машины находятся во внутренней сети, то в первую очередь необходимо настроить прокси, через который будут проходить все запросы при сканировании. Для этого нужно применить и настроить модуль metasploit auxiliary/server/socks_proxy.

Стоит обратить внимание, что основные параметры указанного модуля должны совпадать с конфигурационным файлом /etc/proxychains4.conf. Посмотреть содержимое файла можно в новом окне терминала с помощью команды cat /etc/proxychains4.conf.

Доступ во внутренюю сеть через узел не в домене

Параметры в конфигурационном файле /etc/proxychains4.conf

Доступ во внутренюю сеть через узел не в домене

Далее вернуться к окну терминала с активной сессией и свернуть данную сессию с помощью команды bg, выбрать, настроить и запустить модуль socks_proxy:

use auxiliary/server/socks_proxy 
set srvhost 127.0.0.1 
set srvport 1080 
set version 5 
run

Доступ во внутренюю сеть через узел не в домене

Настройка и запуск модуля

Доступ во внутренюю сеть через узел не в домене

Далее в окне терминала, где просматривался файл /etc/proxychains.conf, запустить сканирование 100 самых часто используемых портов с помощью команды proxychains nmap –n –sT –Pn –top-ports 100 {IP}.

Примечание: можно сканировать всю сеть, но это долгий процесс, рекомендуется производить сканирование по каждому IP-адресу из ARPтаблицы.

Доступ во внутренюю сеть через узел не в домене

Запуск сканирования

Bruteforce пароля и использование ldapsearch

В результате сканирования сети будет получен список открытых портов. На узле 10.10.10.20 обнаружен открытый порт 3389, который по умолчанию используется для подключения по протоколу RDP. Можно использовать указанный порт для доступа к контроллеру домена.

На главной странице портала организации обнаружена электронная почта для связи с менеджером. С большей долей вероятности, данная электронная почта находится в домене. В таком случае можно реализовать атаку перебором с использованием словаря паролей rockyou.txt, который находится по пути /usr/share/wordlists/. Запустить утилиту hydra, используя данную электронную почту, с помощью команды proxychains hydra –V –f- l manager1@ampire.corp –P rockyou.txt rdp://10.10.10.20.

Bruteforce пароля и использование ldapsearch

Запуск атаки перебором

Bruteforce пароля и использование ldapsearch

Мы запустили подбор пароля, однако это вычислительно затратная операция. Так как нужный пароль находится на 1028581 строке, то подбор занял бы намного больше времени, чем выделено на лабораторную. Потому мы решили воспользоваться им без подбора.

Bruteforce пароля и использование ldapsearch

Подбор пароля

Bruteforce пароля и использование ldapsearch

Подбор пароля

Bruteforce пароля и использование ldapsearch

Так как флаг находится в описании одного из доменных пользователей, то для получения флага не обязательно получать сессию с контроллером домена. Вывести информацию о всех доменных пользователях можно с помощью команды proxychains ldapsearch -H ldap://10.10.10.20 -D “manager1@ampire.corp” -W -b “dc=ampire,dc=corp”.

Bruteforce пароля и использование ldapsearch

Использование команды ldapsearch

Bruteforce пароля и использование ldapsearch

Данные учетной записи получены при атаке перебором. В результатах найти параметр description.

Bruteforce пароля и использование ldapsearch

Получение флага

Zerologon CVE 2020-1472

Дополнительный возможный вектор атаки на котроллер домена заключается в эксплуатации уязвимости Zerologon (https://nvd.nist.gov/vuln/detail/cve-2020-1472). Для проверки подверженности узла данной уязвимости можно использовать утилиту crackmapexec. В результате выполнения команды proxychains crackmapexec smb 10.10.10.20 -M zerologon можно узнать NetBIOS name атакуемой машины, в данном случае – это AD.

Zerologon CVE 2020-1472

Проверка машины контроллера домена

Zerologon CVE 2020-1472

Для эксплуатации данной уязвимости можно использовать модуль metasploit auxiliary/admin/dcerpc/cve_2020_1472_zerologon. В результате работы данного модуля будет сброшен пароль от системной учетной записи администратора контроллера домена – search auxiliary/admin/dcerpc/cve_2020_1472_zerologon.

Zerologon CVE 2020-1472

Запуск модуля

Zerologon CVE 2020-1472

Далее для получения дампа хешей учетных записей контроллера домена можно воспользоваться командой, что необходимо выполнить в другом окне терминала.

Zerologon CVE 2020-1472

Дамп хешей учетных записей

Zerologon CVE 2020-1472

В результате будет получен дамп хеша пароля от аккаунта администратора, данный хеш можно применить для подключения с помощью модуля metasploit /windows/smb/psexec.

Для получения сессии с контроллером домена указать обязательные параметры модуля, для чего вернуться в окно терминала с открытой msfconsole – use exploit/windows/smb/psexec.

Zerologon CVE 2020-1472

Получение сессии с контроллером домена

Zerologon CVE 2020-1472

В активной meterpreter-сессии можно перейти в shell-оболочку с помощью команды shell.

Переход в shell-оболочку

Zerologon CVE 2020-1472

С помощью команды net user /domain вывести список всех доменных пользователей, далее вывести полную информацию о пользователе «Flag». В результате будет получен флаг в поле описания пользователя.

Zerologon CVE 2020-1472

Список пользователей в домене

Zerologon CVE 2020-1472

Получение флага

Вывод

В ходе выполнения данной лабораторной работы мы выполнили тренировку “Захват контроллера домена”. В процессе выполнения работы освоили практические навыки выявления, анализа и атаки уязвимостей в различных системах.